草庐IT

javac : invalid target release: 1. 8

全部标签

java - javac 完成的任何类型转换?

据我了解,如果可以在编译期间进行类型检查,那么类型转换将在编译期间完成,不会产生任何运行时开销。例如publicChildgetChild(){Parento=newChild();return(Child)o;}类型转换是在编译期间还是在运行时完成的?是否有任何通用规则来决定类型转换是由javac编译器还是由VM完成的? 最佳答案 其实这种情况存在三种可能:javac编译器可以执行优化。JIT编译器可以执行优化。JIT编译器的native代码可以包含执行运行时类型检查的代码。我希望它是选项1或2。但这可能是特定于平台的。事实上,在

java - 如何通过 Maven 将 "-J"选项传递给 javac?

我有一个使用Maven构建的Java项目。我想向“javac”命令行添加选项-特别是,我想传递一些“-J”选项。所以通常我会做这样的事情:org.apache.maven.pluginsmaven-compiler-plugin-J-Xdebug-J-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=5005然而,当我尝试这个时,我得到了以下形式的错误:[ERROR]Failureexecutingjavac,butcouldnotparsetheerror:javac:invalidflag:-J-XdebugUsage:

idea出现 version of Java 17 is not supported by the project SDK ‘1.8‘. Either choose a lower version

idea新建项目的java只能选17或21,但我们使用的jdk是1.8.解决方法:替换下载数据源:可以将https://start.spring.io/替换成https://start.aliyun.com/阿里云的下载地址

java - JDK 1.7 允许自定义 taglet 的名称*以点开头*。 JDK 1.8 禁止它?

我写了一个customtagletlibrary名称以点开头:.codelet、.codelet.and.out等。它是用JDK7编译的。当使用1.7javadoc.exe生成JavaDoc时,它工作正常。但是当用JDK8生成它时,它失败了,因为C:\...\Temp.java:5:error:notagnameafter@*{@.codeletmypkg.Temp}`如果我使用taglet(不是taglet代码本身)将代码更改为{@codeletmypkg.Temp}:C:\...\Temp.java:5:error:unknowntag:codelet*{@codeletmypkg

javac 奇怪的语法 - 表达式的错误非法开始

我遇到了一个奇怪的错误,我认为这是一个错误。这是一个最小的案例,请不要评论代码的有用性:)classFoo{staticpublicintbar(){return42;}publicintbaz(){returntrue?42:(Foo.bar()>42?41:43);}}结果:err.java:7:illegalstartofexpressionFoo.bar()>42?41:43^我试过SUNSDKjavac1.6.0_13和1.6.0_21。当我要么使bar()非泛型(只是出于好奇,不是真正的选择)去掉第7行三元表达式两边的括号所以看起来如果e是一个表达式,那么写成(e)并不总是

java - SSL 握手失败 - Java 1.8

只是让人们知道我在升级到Java1.8后似乎遇到过的一个问题。并非所有的解决方案都是相同的,因此请发布我是如何解决这个问题的。但首先...这不是一个值得生产系统使用的解决方案,因为安全性正在被有效地降级。但是,如果你被屏蔽测试等,它可能非常适合。我的问题是无论我做什么...启用SSLv3等。我总是收到"javax.net.ssl.SSLHandshakeException:Receivedfatalalert:handshake_failure".以下是我“解决”这个问题所采取的步骤。首先,我发现了服务器使用的是哪种密码。我是通过openssl完成的。openssls_client-h

java - 接口(interface)中的协变返回类型未通过 Javac 编译

我有以下结构:publicinterfaceBarReturn{}publicinterfaceFooReturn{}publicinterfaceFooBarReturnextendsFooReturn,BarReturn{}publicinterfaceFoo{FooReturnfooBar();}publicinterfaceBar{BarReturnfooBar();}publicinterfaceFooBarextendsFoo,Bar{FooBarReturnfooBar();}Javac失败并显示以下消息:FooBar.java:2:typesBarandFooarein

java - javac 可以从 stdin 编译吗?

javac可以从标准输入编译吗?像这样:catmyfile|javac 最佳答案 不,没有这样做的选项。来自documentation:Therearetwowaystopasssourcecodefilenamestojavac:Forasmallnumberofsourcefiles,simplylistthefilenamesonthecommandline.Foralargenumberofsourcefiles,listthefilenamesinafile,separatedbyblanksorlinebreaks.Th

java - IdeaUIDesigner 中的 Lambda 表达式和 Java 1.8

我正在尝试将Java1.8与IdeaUIDesigner的lambda表达式一起使用,我在maven中有:org.codehaus.mojoideauidesigner-maven-pluginjavac2truetruetrue和依赖com.intellijforms_rt7.0.3当我尝试使用lambda时,它返回编译错误:Failedtoexecutegoalorg.codehaus.mojo:ideauidesigner-maven-plugin:1.0-beta-1:javac2(default)onprojectstockbox-chart:Executiondefault

java - 不支持发布版本 1.8

我有一个使用Java8的项目。到目前为止,我们在pom中将源和目标版本指定为1.8:1.81.8我们想利用Java9+的“-release”选项并添加了以下内容:1.8但是现在我们得到以下错误:Fatalerrorcompiling:releaseversion1.8notsupported我们使用maven3.5.3,maven-compiler-plugin3.8.0版本和Java10来编译项目。这里有什么问题吗? 最佳答案 这应该可行8自属性仅适用于发布的主要版本。顺便说一下,这是假设这是实际编译器插件配置中使用的参数,有点像